package com.jvyou.house.domain;

import com.jvyou.common.annotation.Excel;
import com.jvyou.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.List;

/**
 * 房源对象 house
 *
 * @author Jvyou
 * @date 2024-09-16
 */
public class House extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 房屋ID
     */
    private Long id;

    /**
     * 房屋名称
     */
    @Excel(name = "房屋名称")
    private String houseName;

    /**
     * 房屋状态
     */
    @Excel(name = "房屋状态")
    private Integer status;

    /**
     * 租金 (元/月)
     */
    @Excel(name = "租金 (元/月)")
    private BigDecimal rent;

    /**
     * 房产证编号
     */
    @Excel(name = "房产证编号")
    private String propertyCertificateNo;

    /**
     * 卧室数量
     */
    @Excel(name = "卧室数量")
    private Long bedroomCount;

    /**
     * 卫生间数量
     */
    @Excel(name = "卫生间数量")
    private Long bathroomCount;

    /**
     * 厨房数量
     */
    @Excel(name = "厨房数量")
    private Long kitchenCount;

    /**
     * 客厅数量
     */
    @Excel(name = "客厅数量")
    private Long livingroomCount;

    /**
     * 房屋面积 (m²)
     */
    @Excel(name = "房屋面积 (m²)")
    private BigDecimal area;

    /**
     * 空调:
     */
    @Excel(name = "空调:")
    private Integer hasAirConditioner;

    /**
     * 建成年份
     */
    @Excel(name = "建成年份")
    private Long buildYear;

    /**
     * 朝向
     */
    @Excel(name = "朝向")
    private Integer orientation;

    /**
     * 楼层
     */
    @Excel(name = "楼层")
    private Long floor;

    /**
     * 电梯
     */
    @Excel(name = "电梯")
    private Integer hasElevator;

    /**
     * 联系人
     */
    @Excel(name = "联系人")
    private String contactName;

    /**
     * 联系电话
     */
    @Excel(name = "联系电话")
    private String contactPhone;

    /**
     * 描述
     */
    @Excel(name = "描述")
    private String description;

    @Excel(name = "联系邮箱")
    private String contactEmail;

    /**
     * 删除标志 (0代表存在 2代表删除)
     */
    private Integer delFlag;

    /**
     * 审核状态: 0-未审核, 1-审核中, 2-已审核
     */
    private Integer auditStatus;

    /**
     * 房屋图片信息
     */
    private List<HouseImage> houseImageList;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setHouseName(String houseName) {
        this.houseName = houseName;
    }

    public String getHouseName() {
        return houseName;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStatus() {
        return status;
    }

    public void setRent(BigDecimal rent) {
        this.rent = rent;
    }

    public BigDecimal getRent() {
        return rent;
    }

    public void setPropertyCertificateNo(String propertyCertificateNo) {
        this.propertyCertificateNo = propertyCertificateNo;
    }

    public String getPropertyCertificateNo() {
        return propertyCertificateNo;
    }

    public void setBedroomCount(Long bedroomCount) {
        this.bedroomCount = bedroomCount;
    }

    public Long getBedroomCount() {
        return bedroomCount;
    }

    public void setBathroomCount(Long bathroomCount) {
        this.bathroomCount = bathroomCount;
    }

    public Long getBathroomCount() {
        return bathroomCount;
    }

    public void setKitchenCount(Long kitchenCount) {
        this.kitchenCount = kitchenCount;
    }

    public Long getKitchenCount() {
        return kitchenCount;
    }

    public void setLivingroomCount(Long livingroomCount) {
        this.livingroomCount = livingroomCount;
    }

    public Long getLivingroomCount() {
        return livingroomCount;
    }

    public void setArea(BigDecimal area) {
        this.area = area;
    }

    public BigDecimal getArea() {
        return area;
    }

    public void setHasAirConditioner(Integer hasAirConditioner) {
        this.hasAirConditioner = hasAirConditioner;
    }

    public Integer getHasAirConditioner() {
        return hasAirConditioner;
    }

    public void setBuildYear(Long buildYear) {
        this.buildYear = buildYear;
    }

    public Long getBuildYear() {
        return buildYear;
    }

    public void setOrientation(Integer orientation) {
        this.orientation = orientation;
    }

    public Integer getOrientation() {
        return orientation;
    }

    public void setFloor(Long floor) {
        this.floor = floor;
    }

    public Long getFloor() {
        return floor;
    }

    public void setHasElevator(Integer hasElevator) {
        this.hasElevator = hasElevator;
    }

    public Integer getHasElevator() {
        return hasElevator;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getContactName() {
        return contactName;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }

    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }

    public Integer getDelFlag() {
        return delFlag;
    }

    public void setAuditStatus(Integer auditStatus) {
        this.auditStatus = auditStatus;
    }

    public Integer getAuditStatus() {
        return auditStatus;
    }

    public List<HouseImage> getHouseImageList() {
        return houseImageList;
    }

    public void setHouseImageList(List<HouseImage> houseImageList) {
        this.houseImageList = houseImageList;
    }

    public String getContactEmail() {
        return contactEmail;
    }

    public void setContactEmail(String contactEmail) {
        this.contactEmail = contactEmail;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("houseName", getHouseName())
                .append("status", getStatus())
                .append("rent", getRent())
                .append("propertyCertificateNo", getPropertyCertificateNo())
                .append("bedroomCount", getBedroomCount())
                .append("bathroomCount", getBathroomCount())
                .append("kitchenCount", getKitchenCount())
                .append("livingroomCount", getLivingroomCount())
                .append("area", getArea())
                .append("hasAirConditioner", getHasAirConditioner())
                .append("buildYear", getBuildYear())
                .append("orientation", getOrientation())
                .append("floor", getFloor())
                .append("hasElevator", getHasElevator())
                .append("contactName", getContactName())
                .append("contactPhone", getContactPhone())
                .append("description", getDescription())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("delFlag", getDelFlag())
                .append("auditStatus", getAuditStatus())
                .append("houseImageList", getHouseImageList())
                .toString();
    }
}
